class Student:
    # 类属性：定义在类中，方法外的变量
    school = '五道口一中'

    # 初始化方法
    def __init__(self, xm, age):  # name,age是方法的参数，是局部变量
        self.name = xm  # 左侧self.name是实例属性,可以在整个类中使用，xm是局部变量
        self.age = age  # 实例的名称和局部变量的名称可以相同

    # 定义在类中的函数，称为方法，会自带一个参数self
    def login(self):
        print(f'我叫{self.name},我今年{self.age}岁了')

    # 静态方法
    @staticmethod
    def fun():
        # print(self.name) # 不能调用实例属性
        # self.login()  # 也不能调用实例方法
        print('这是一个静态方法，不能调用实例属性，也不能调用实例方法')

    # 类方法
    @classmethod
    def cm(cls):  # cls 是 class 的简写
        print('这是一个类方法，不能调用实例属性，也不能调用实例方法')


# 创建类的对象
stu = Student('张三',18)

# 实例属性，使用对象名打点调用
print(stu.name,stu.age)
# 类属性，直接使用类名，打点调用
print(Student.school)

# 实例方法，直接使用对象名打点调用
stu.login()

# 类方法 直接使用类名，打点调用
Student.cm()

# 静态方法 直接使用类名，打点调用
Student.fun()